class Student:
    # 类属性，定义在类中方法外的变量
    school = "北京"

    # 初始化方法
    # name,age是方法的参数，是局部变量，name,age的作用域是整个__init__方法
    # 实例属性，在创建类对象时使用___init__方法进行赋值
    def __init__(self, name, age):
        # 左侧是实例属性，区别与类属性
        self.name = name
        self.age = age

    # 实例方法，定义在类中，而且自带self参数
    def show(self):
        print("我叫:" + self.name)
        print("我今年:", self.age)

    # 静态方法，使用装饰器@staticmethod修饰的方法,不需要自动selt，静态方法不能调用实例属性，也不等调用实例方法
    @staticmethod
    def sm():
        # 这是一个静态方法
        pass

    # 类方法，使用装饰器@classmethod修饰的方法
    # cls --> class的简写
    @classmethod
    def cm(cls):
        # 这是一个类方法，不能调用实例属性，也不能调用实例方法
        pass


# 当前python测试代码模块，可以直接运行该python文件进行功能测试或其他功能
# 当将该文件作为模块引入到其他python文件使用时，该处的代码块不会被执行，不会影响其他python文件
if __name__ == "__main__":
    stu = Student("Lmr", 12)
    stu.show()
